# -*- coding: utf-8 -*-
"""
------------------------------------------------------------------------------
    File Name:  np_utils_demo
    Author   :  wanwei1029
    Date     :  2018/12/18
    Desc     :
------------------------------------------------------------------------------
"""
from keras.utils import np_utils

def to_categorical_demo():
    """
    to_categorical就是把一个数字分类的向量，转换为one-hot模型，转换后向量会变成二维矩阵。
    比如向量[1,3,4,2,5]代表分类结果，to_categorical可以将其转换为one-hot模型，如下
    [0,1,0,0,0,0],[0,0,0,1,0,0].....
    可能指定参数：num_classes，如果为空，则以data值中最大的为最大长度。
    函数的作为：对于分类问题，模型经过激活函数后，得到的分类就是一个ont-hot模型，而标签可能是数字结果，这一方法可以很好的将标签
                转换为可与模型结果比较的对象,也就是用在标签上，当然，如果直接将标签转换为了分类结果，就不用了。
    :return:
    """
    data = [1, 3, 4, 2, 5]
    result_one = np_utils.to_categorical(data)
    print(result_one)
    result_two = np_utils.to_categorical(data, num_classes=10)
    print(result_two)


def demo():
    """
    """
    to_categorical_demo()


if __name__ == '__main__':
    test_method = "demo"
    if test_method == "demo":
        demo()
